package com.winchain.chainbill.tbill.base.dao;

import com.shell.bee.persistence.mapper.BaseMapper;
import com.winchain.chainbill.tbill.base.po.TbRec;
import com.winchain.chainbill.tbill.biz.vo.TBillQueryVo;
import com.winchain.chainbill.tbill.biz.vo.TbRecVo;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public abstract interface TbRecDao extends BaseMapper<TbRec> {
	public abstract int updateBillOptimistically(TbRec paramTbRec);

	public abstract List<TbRecVo> queryTBills(TBillQueryVo paramTBillQueryVo);

	public abstract List<TbRecVo> queryDctList(@Param("billState") String paramString1,
			@Param("cusName") String paramString2, @Param("buyerId") String paramString3,
			@Param("billCode") String paramString4);

	public abstract TbRecVo getDetail(@Param("billId") String paramString);

	public abstract TbRec lockByKey(@Param("billId") String paramString);

	public abstract List<TbRecVo> queryAprvList(@Param("billState") String paramString1,
			@Param("cusName") String paramString2, @Param("finId") String paramString3,
			@Param("billCode") String paramString4);

	public abstract List<TbRecVo> queryTBillsForMgt(TBillQueryVo paramTBillQueryVo);

	public abstract int getMsgCountForTBillPayIns(@Param("billState") String paramString1,
			@Param("buyerId") String paramString2);

	public abstract int getMsgCountForTBillAprv(@Param("billState") String paramString1,
			@Param("finId") String paramString2);

	public abstract List<TbRecVo> selectUnuploadInvoiceList(TBillQueryVo paramTBillQueryVo);

	public abstract List<TbRecVo> queryRevList(@Param("billState") String paramString1,
			@Param("billCode") String paramString2, @Param("sellerId") String paramString3);
}
